package com.ims.core.doc.domain;

import com.ims.common.annotation.Excel;
import com.ims.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.math.BigDecimal;

/**
 * 结算单明细项对象 t_sc_settlebill_entry
 *
 * @author IMS
 * @date 2024-12-02
 */
public class TScSettlebillEntry extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** id */
    private Long id;

    /** 开票项ID */
    @Excel(name = "开票项ID")
    private String entryId;

    /** 结算单ID */
    @Excel(name = "结算单ID")
    private String settleId;

    /** 公司代码 */
    @Excel(name = "公司代码")
    private String custId;

    /** 客户公司代码 */
    @Excel(name = "客户公司代码")
    private String siteCode;

    /** 客户公司 */
    @Excel(name = "客户公司")
    private String siteName;

    /** 采购单号 */
    @Excel(name = "采购单号")
    private String poNo;

    /** 销售员 */
    @Excel(name = "销售员")
    private String saleName;

    /** 销售订单号 */
    @Excel(name = "销售订单号")
    private String orderNo;

    /** 销售订单行号 */
    @Excel(name = "销售订单行号")
    private Long lineNo;

    /** 汇率 */
    @Excel(name = "汇率")
    private BigDecimal exchRate;

    /** 币别代码 */
    @Excel(name = "币别代码")
    private String currencyCode;

    /** 币别 */
    @Excel(name = "币别")
    private String currencyName;

    /** 单位代码 */
    @Excel(name = "单位代码")
    private String unitCode;

    /** 单位 */
    @Excel(name = "单位")
    private String unit;

    /** 数量 */
    @Excel(name = "数量")
    private BigDecimal qty;

    /** 单价(不含税) */
    @Excel(name = "单价(不含税)")
    private BigDecimal withoutPrice;

    /** 金额(不含税) */
    @Excel(name = "金额(不含税)")
    private BigDecimal withoutAmount;

    /** 税率 */
    @Excel(name = "税率")
    private BigDecimal taxRate;

    /** 税额 */
    @Excel(name = "税额")
    private BigDecimal tax;

    /** 扣除额 */
    @Excel(name = "扣除额")
    private BigDecimal deductAmount;

    /** 折扣率 */
    @Excel(name = "折扣率")
    private BigDecimal deductRate;

    /** 折扣金额(不含税) */
    @Excel(name = "折扣金额(不含税)")
    private BigDecimal withoutDiscountAmount;

    /** 折扣金额(含税) */
    @Excel(name = "折扣金额(含税)")
    private BigDecimal discountAmount;

    /** 单价(含税) */
    @Excel(name = "单价(含税)")
    private BigDecimal price;

    /** 金额(含税) */
    @Excel(name = "金额(含税)")
    private BigDecimal amount;

    /** 优惠政策类型代码 */
    @Excel(name = "优惠政策类型代码")
    private Integer policyCode;

    /** 优惠政策类型 */
    @Excel(name = "优惠政策类型")
    private String policyName;

    /** 免税类型代码 */
    @Excel(name = "免税类型代码")
    private Long freeTaxType;

    /** 免税类型 */
    @Excel(name = "免税类型")
    private String freeTaxTypeName;

    /** 税收分类编码 */
    @Excel(name = "税收分类编码")
    private String taxCategoryCode;

    /** 税收分类简称 */
    @Excel(name = "税收分类简称")
    private String taxShortName;

    /** 货物及服务编码 */
    @Excel(name = "货物及服务编码")
    private String productCode;

    /** 货物及服务名称 */
    @Excel(name = "货物及服务名称")
    private String productName;

    /** 规格型号 */
    @Excel(name = "规格型号")
    private String specificatCode;


    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getEntryId() {
        return entryId;
    }

    public void setEntryId(String entryId) {
        this.entryId = entryId;
    }

    public String getSettleId() {
        return settleId;
    }

    public void setSettleId(String settleId) {
        this.settleId = settleId;
    }

    public String getCustId() {
        return custId;
    }

    public void setCustId(String custId) {
        this.custId = custId;
    }

    public String getSiteCode() {
        return siteCode;
    }

    public void setSiteCode(String siteCode) {
        this.siteCode = siteCode;
    }

    public String getSiteName() {
        return siteName;
    }

    public void setSiteName(String siteName) {
        this.siteName = siteName;
    }

    public String getPoNo() {
        return poNo;
    }

    public void setPoNo(String poNo) {
        this.poNo = poNo;
    }

    public String getSaleName() {
        return saleName;
    }

    public void setSaleName(String saleName) {
        this.saleName = saleName;
    }

    public String getOrderNo() {
        return orderNo;
    }

    public void setOrderNo(String orderNo) {
        this.orderNo = orderNo;
    }

    public Long getLineNo() {
        return lineNo;
    }

    public void setLineNo(Long lineNo) {
        this.lineNo = lineNo;
    }

    public BigDecimal getExchRate() {
        return exchRate;
    }

    public void setExchRate(BigDecimal exchRate) {
        this.exchRate = exchRate;
    }

    public String getCurrencyCode() {
        return currencyCode;
    }

    public void setCurrencyCode(String currencyCode) {
        this.currencyCode = currencyCode;
    }

    public String getCurrencyName() {
        return currencyName;
    }

    public void setCurrencyName(String currencyName) {
        this.currencyName = currencyName;
    }

    public String getUnitCode() {
        return unitCode;
    }

    public void setUnitCode(String unitCode) {
        this.unitCode = unitCode;
    }

    public String getUnit() {
        return unit;
    }

    public void setUnit(String unit) {
        this.unit = unit;
    }

    public BigDecimal getQty() {
        return qty;
    }

    public void setQty(BigDecimal qty) {
        this.qty = qty;
    }

    public BigDecimal getWithoutPrice() {
        return withoutPrice;
    }

    public void setWithoutPrice(BigDecimal withoutPrice) {
        this.withoutPrice = withoutPrice;
    }

    public BigDecimal getWithoutAmount() {
        return withoutAmount;
    }

    public void setWithoutAmount(BigDecimal withoutAmount) {
        this.withoutAmount = withoutAmount;
    }

    public BigDecimal getTaxRate() {
        return taxRate;
    }

    public void setTaxRate(BigDecimal taxRate) {
        this.taxRate = taxRate;
    }

    public BigDecimal getTax() {
        return tax;
    }

    public void setTax(BigDecimal tax) {
        this.tax = tax;
    }

    public BigDecimal getDeductAmount() {
        return deductAmount;
    }

    public void setDeductAmount(BigDecimal deductAmount) {
        this.deductAmount = deductAmount;
    }

    public BigDecimal getDeductRate() {
        return deductRate;
    }

    public void setDeductRate(BigDecimal deductRate) {
        this.deductRate = deductRate;
    }

    public BigDecimal getWithoutDiscountAmount() {
        return withoutDiscountAmount;
    }

    public void setWithoutDiscountAmount(BigDecimal withoutDiscountAmount) {
        this.withoutDiscountAmount = withoutDiscountAmount;
    }

    public BigDecimal getDiscountAmount() {
        return discountAmount;
    }

    public void setDiscountAmount(BigDecimal discountAmount) {
        this.discountAmount = discountAmount;
    }

    public BigDecimal getPrice() {
        return price;
    }

    public void setPrice(BigDecimal price) {
        this.price = price;
    }

    public BigDecimal getAmount() {
        return amount;
    }

    public void setAmount(BigDecimal amount) {
        this.amount = amount;
    }

    public Integer getPolicyCode() {
        return policyCode;
    }

    public void setPolicyCode(Integer policyCode) {
        this.policyCode = policyCode;
    }

    public String getPolicyName() {
        return policyName;
    }

    public void setPolicyName(String policyName) {
        this.policyName = policyName;
    }

    public Long getFreeTaxType() {
        return freeTaxType;
    }

    public void setFreeTaxType(Long freeTaxType) {
        this.freeTaxType = freeTaxType;
    }

    public String getFreeTaxTypeName() {
        return freeTaxTypeName;
    }

    public void setFreeTaxTypeName(String freeTaxTypeName) {
        this.freeTaxTypeName = freeTaxTypeName;
    }

    public String getTaxCategoryCode() {
        return taxCategoryCode;
    }

    public void setTaxCategoryCode(String taxCategoryCode) {
        this.taxCategoryCode = taxCategoryCode;
    }

    public String getTaxShortName() {
        return taxShortName;
    }

    public void setTaxShortName(String taxShortName) {
        this.taxShortName = taxShortName;
    }

    public String getProductCode() {
        return productCode;
    }

    public void setProductCode(String productCode) {
        this.productCode = productCode;
    }

    public String getProductName() {
        return productName;
    }

    public void setProductName(String productName) {
        this.productName = productName;
    }

    public String getSpecificatCode() {
        return specificatCode;
    }

    public void setSpecificatCode(String specificatCode) {
        this.specificatCode = specificatCode;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("entryId", getEntryId())
                .append("settleId", getSettleId())
                .append("custId", getCustId())
                .append("siteCode", getSiteCode())
                .append("siteName", getSiteName())
                .append("poNo", getPoNo())
                .append("saleName", getSaleName())
                .append("orderNo", getOrderNo())
                .append("lineNo", getLineNo())
                .append("exchRate", getExchRate())
                .append("currencyCode", getCurrencyCode())
                .append("currencyName", getCurrencyName())
                .append("unitCode", getUnitCode())
                .append("unit", getUnit())
                .append("qty", getQty())
                .append("withoutPrice", getWithoutPrice())
                .append("withoutAmount", getWithoutAmount())
                .append("taxRate", getTaxRate())
                .append("tax", getTax())
                .append("deductAmount", getDeductAmount())
                .append("deductRate", getDeductRate())
                .append("withoutDiscountAmount", getWithoutDiscountAmount())
                .append("discountAmount", getDiscountAmount())
                .append("price", getPrice())
                .append("amount", getAmount())
                .append("policyCode", getPolicyCode())
                .append("policyName", getPolicyName())
                .append("freeTaxType", getFreeTaxType())
                .append("freeTaxTypeName", getFreeTaxTypeName())
                .append("taxCategoryCode", getTaxCategoryCode())
                .append("taxShortName", getTaxShortName())
                .append("productCode", getProductCode())
                .append("productName", getProductName())
                .append("specificatCode", getSpecificatCode())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .toString();
    }
}
